package com.fruit.mapper.user;


import java.util.List;
import java.util.Map;

import com.fruit.pojo.order.OrderGood;
import com.fruit.pojo.user.Follow;
import com.fruit.pojo.user.Region;
import com.fruit.pojo.user.Address;
import com.fruit.pojo.user.ComAccount;
import com.fruit.pojo.user.SupplierReal;
import com.fruit.pojo.user.UserAccount;
import com.fruit.pojo.user.UserInfo;
import com.fruit.pojo.user.UserLogin;

public interface UserMapper {
	

	UserLogin getUserLoginByUserName(String userName);
	
	UserLogin getUserLoginById(int loginId);
	
	UserInfo getUserInfoByLoginId(int loginId);
	
	SupplierReal getSupplierByInviteCode(SupplierReal sr);
	
	/**
	 * 保存userLogin信息
	 * 
	 * @param login
     * @author : GeHuanHuan
     * @version : 2017.06.09 11:45 
	 */
	void saveUserLogin(UserLogin login);

	/**
	 * 保存userInfo信息
	 * 
	 * @param user
	 * @return
     * @author : GeHuanHuan
     * @version : 2017.06.09 11:45 
	 */
	int saveUserInfo(UserInfo user);

	/**
	 * 保存userAccount资金账户信息
	 * 
	 * @param account
     * @author : GeHuanHuan
     * @version : 2017.06.09 11:45 
	 */
	void saveUserAccount(UserAccount account);
	
	int updateSupplierRealUse(SupplierReal sr);
	
	UserInfo getUserById(int userId);

	int updateUserPwd(UserLogin login);

	/**
	 * 用户收货地址
	 * @param int
	 */
	List<Address> getAddressList(Map<String, Object> parame);

	/**
	 * 添加收货地址
	 * @param Address
	 */
	void saveAddress(Address address);

	/**
	 * 修改收货地址
	 * @param Address
	 */
	void updateAddress(Address address);

	/**
	 * 删除收货地址
	 * @param int
	 */
	void deleteAddress(int id);

	/**
	 * 用户收货地址
	 * @param int
	 */
	Address getAddress(int id);

	/**
	 * 地区下拉
	 * @param int
	 */
	List<Region> regionList(int id);

	/**
	 * 修改用户昵称
	 * @param UserInfo
	 */
	void updateUserPetName(UserInfo user);

	/**
	 * 修改用户性别
	 * @param UserInfo
	 */
	void updateUserSex(UserInfo user);

	/**
	 * 修改用户头像
	 * @param UserInfo
	 */
	void updateUserHeadImage(UserInfo user);

	/**
	 * 添加关注
	 * @param UserInfo
	 */
	void saveFollow(Follow follow);

	/**
	 * 关注列表
	 * @param UserInfo
	 */
	List<OrderGood> getFollowList(Map<String, Object> parame);

	/**
	 * 删除关注
	 * @param UserInfo
	 */
	void deleteFollow(Follow follow);

	/**
	 * 修改地址状态
	 * @param UserInfo
	 */
	void updateAddStatus(Address addre);

	/**
	 * 获取商品是否关注
	 * @param UserInfo
	 */
	int getFollowNum(Follow follow);

	/**
	 * 获取联系方式
	 * @param UserInfo
	 */
	ComAccount getContact();
}
